package com.example.nio.filechannel;

import java.io.FileInputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

/**
 * @author panghu
 * @version 1.0.0
 * @createTime 2023年08月06日 14:59:00
 * @Description
 */
public class Demo02 {

    public static void main(String[] args) throws IOException {
        //1. 直接通过输入或输出流获取对应的通道
        FileInputStream in = new FileInputStream("test.txt");
        //但是这里的通道只支持读取或是写入操作
        FileChannel channel = in.getChannel();
        //创建一个容量为128的缓冲区
        ByteBuffer buffer = ByteBuffer.allocate(128);

        // 报错
        channel.write(ByteBuffer.wrap("伞兵一号卢本伟准备就绪!!!".getBytes()));

        //从通道中将数据读取到缓冲区中
        channel.read(buffer);
        //翻转一下，接下来要读取了
        buffer.flip();

        System.out.println(new String(buffer.array(), 0, buffer.remaining()));
    }

}
